// // 所有返回的基类
interface Res<T> {
    code: number;
    data: T;
    msg: string;
    // currentPage?: number;
    // pageSize?: number;
    // total?: number;
    // totalPage?: number;
}
interface ResData<T> {
    code: number;
    data: T[];
    msg?: string;
    currentPage?: number;
    pageSize?: number;
    total?: number;
    totalPage?: number;
}
// 登录定义入参
interface InLoginItf {
    loginName: string;
    loginPass: string;
}
interface OutLoginDataItf {
    userEmail: string;
    userIcon: string;
    userPass: string;
    userRegdate: string;
    userSignature: string;
    userId: number;
    userType: number;
    userName: string;
}

interface OutLoginMenuInfoItf {
    childMenu: null | OutLoginMenuInfoItf;
    chineseName: string;
    icon: string;
    id: number;
    menuStatus: number;
    name: string;
    parentMenuId: number;
    path: string;
    title: string;
}
// 登录定义出参
interface OutLoginItf {
    data: OutLoginDataItf[];
    menuInfo: OutLoginMenuInfoItf[];
    userPass: string;
    userType: number;
}

// 添加登录信息
interface InInsertLoginInfoItf {
    loginId: number;
}

// 验证用户名是否重复
interface InCheckUserNameItf {
    registerName: string;
}
// 验证邮箱是否重复
interface InCheckUserEmailItf {
    registerEmail: string;
}
interface InSendEmailItf {
    registerEmail: string;
    content: string;
}
// 注册
interface InRegisterItf {
    userEmail: string;
    userName: string;
    userPass: string;
}
interface OutGetCarouselItf {
    id: number;
    name: string;
    url: string;
}
interface OutGetAllArticleInfoItf {
    articleId: number;
    articleTitle: string;
    articleClassifyId: number;
    articleClassifyName: string;
    articleDase: string;
    articleImgLitimg: string;
    articleContent: string;
    articleState: number;
    articlePass: number;
    commentState: number;
    userId: number;
    userName: string;
    publishTime: string;
    click: number;
    review: number;
}
interface GetSystemSetupItf {
    effects02: number;
    effects03: number;
    effects04: number;
    effects01: number;
    stickArticle: string;
    allArticle: string;
    featuredArticle: string;
    technologyArticle: string;
    resourceArticle: string;
    advertising1: string;
    advertisingLink1: string;
    advertising2: string;
    advertisingLink2: string;
    advertising3: string;
    advertisingLink3: string;
    advertising4: string;
    advertising5: string;
}

// 文章分类
interface GetArticleClassItf {
    articleNumber: number;
    classifyId: number;
    classifyIntroduce: string;
    classifyName: string;
    color1: string;
    color2: string;
}

interface InsertVisitInfoItf {
    ip: string;
    city: string;
    time: string;
}
interface TopTextList {
    id: number;
    text: string;
}
interface GetTopTextITF {
    currentPage: number;
    list: TopTextList[];
    pageSize: number;
    total: number;
    totalPage: number;
}
interface GetArticleByPageITF {
    code?: number;
    currentPage: number;
    list: OutGetAllArticleInfoItf[];
    pageSize: number;
    total: number;
    totalPage: number;
}
interface Child {
    commentId: number;
    articleId: number;
    userId: number;
    content: string;
    parentId: number;
    commentDate: string;
    articleTitle: string;
    userName: string;
}

interface GetCommentByArticleIdITF {
    userId: number;
    userType: number;
    userName: string;
    userEmail: string;
    userRegdate: string;
    userSignature: string;
    userIcon: string;
    child: Child[];
    commentId: number;
    articleId: number;
    content: string;
    parentId: number;
    commentDate: string;
    articleTitle: string;
}
interface ClassifyITF {
    articleNumber: number;
    classifyId: number;
    classifyIntroduce: string;
    classifyName: string;
    color1: string;
    color2: string;
}

interface Link {
    urlAddres: string;
    urlId: number;
    urlLitimg: string;
    urlName: string;
    urlPass: number;
    urlReferral: string;
    urlType: number;
    webmasterEmail: string;
}

interface GetWebsiteLinkItf {
    list: Link[];
}

interface InsertWebSiteItf {
    urlName: string;
    urlAddres: string;
    urlReferral: string;
    urlType: string;
    urlLitimg: string;
    webmasterEmail: string;
}

interface MessageList {
    messageId: number;
    messageName: string;
    messageQQ: string;
    content: string;
    replyContent: string;
    messageDate: string;
}
interface MessageData {
    currentPage: number;
    list: MessageList[];
    pageSize: number;
    total: number;
    totalPage: number;
}
interface GetMessageItf {
    code: number;
    data: MessageData;
    msg: string;
}

export type {
    Res,
    ResData,
    InLoginItf,
    OutLoginItf,
    InInsertLoginInfoItf,
    InCheckUserNameItf,
    InCheckUserEmailItf,
    InSendEmailItf,
    InRegisterItf,
    OutGetCarouselItf,
    OutGetAllArticleInfoItf,
    GetSystemSetupItf,
    GetArticleClassItf,
    InsertVisitInfoItf,
    GetTopTextITF,
    GetArticleByPageITF,
    GetCommentByArticleIdITF,
    ClassifyITF,
    GetWebsiteLinkItf,
    InsertWebSiteItf,
    GetMessageItf
}